home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / mlib / include / mmem.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-03-03  |  1.7 KB  |  49 lines

  1.  
  2. #ifndef __MMEM_H
  3. #define __MMEM_H
  4.  
  5. #include <dos.h>
  6. #include <alloc.h>
  7. #include <mmemutil.h>
  8.  
  9. #define ATOM_ID              0x0113
  10.  
  11. typedef enum {
  12.     GetFrom,
  13.     PutOn
  14. } WAY;
  15.  
  16. class Atom : public MObject, public MFileOp {
  17. protected:
  18.     SIZE                     size;
  19.     SIZE                     elSize;
  20.     WORD                     nElem;
  21.     void *                   mem;
  22. public:
  23.                  Atom (void);
  24.                  Atom (const Atom& atom);
  25.                  Atom (WORD n_elem, SIZE n_elSize = 1);
  26.     virtual void             Clear (void);
  27.     virtual void             Fill (void *sample);
  28.     virtual inline WORD      GetMaxElem (void);
  29.     virtual inline classType isA (void) {return (ATOM_ID);};
  30.     virtual inline void      Move (WAY Way, WORD Offset, PTR Where, SIZE HowMuch);
  31.     virtual inline void      Move (WAY Way, WORD Offset, PTR Where, SIZE HowMany, WORD OfHowMuch, WORD Skip = 0, WORD Ignore = 0);
  32.     virtual void             LoadDirect (int fp);
  33.     virtual void             SaveDirect (int fp);
  34.     virtual Atom&            operator+ (const Atom& a1);
  35.     virtual Atom&            operator= (const Atom& a1);
  36.     virtual void *           operator[] (DWORD index);
  37.     virtual                  operator void*() const;
  38.     virtual                  operator BYTE*() const;
  39.     friend istream&          operator>> (istream&, Atom&);
  40.     virtual void             Resize (WORD n_nelem, SIZE n_elSize = 0);
  41.     virtual void             ForEach (IterFuncType func, void * param);
  42.     virtual void *           FirstThat (CondFuncType test, void * param);
  43.     virtual void *           LastThat (CondFuncType test, void * param);
  44.                 ~Atom (void);
  45. };
  46. typedef Atom ATOM;
  47.  
  48. #endif
  49.